home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (PO) / Nibble Volume 10, No. 05 (1989-05)(MicroSPARC)(Side A).zip / Nibble Volume 10, No. 05 (1989-05)(MicroSPARC)(Side A).po / CHECKIT.bas < prev    next >
BASIC Source File  |  1996-12-24  |  4KB  |  54 lines

  1. 10  REM   ********** NIBBLE PRD DISK **********
  2. 20  REM   * CHECKIT                           *
  3. 30  REM   * COPYRIGHT 1988 BY MICROSPARC, INC.*
  4. 40  REM   * CONCORD, MA 01742                 *
  5. 50  REM   *************************************
  6. 60  TEXT : HOME : NORMAL : PRINT "CHECKIT": PRINT "COPYRIGHT 1988 BY MICROSPARC, INC."
  7. 70  ONERR  GOTO 90
  8. 80  FOR I = 0 TO 377: READ ML:CS = CS +ML: NEXT : RESTORE : IF CS = 48127  THEN 100
  9. 90  PRINT : PRINT "ERROR IN DATA STATEMENTS!": PRINT "PROBABLY LOCATED ON OR BEFORE LINE "; PEEK(123) + PEEK(124) *256: END 
  10. 100  POKE 216,0: POKE 768,0: DIM H(3):H(0) = 1:H(1) = 16:H(2) = 256:H(3) = 4096
  11. 110  VTAB 6: PRINT "ARE YOU ENTERING A HEXADECIMAL": PRINT "FILE?";: GET A$: POKE  -16368,0: PRINT A$
  12. 120  IF A$ = "N"  OR A$ =  CHR$(110)  THEN  GOSUB 370: POKE 34218,128: GOTO 210
  13. 130  IF A$ < >"Y"  AND A$ < > CHR$(121)  THEN 110
  14. 140  POKE 768,1: VTAB 10: CALL  -958: PRINT "WHAT IS THE STARTING ADDRESS OF THE": PRINT "FILE (IN HEX)";: INPUT H$: GOSUB 290:A = H
  15. 150  IF A <736  OR A >39424  THEN  PRINT : PRINT "INVALID ADDRESS. PLEASE DOUBLE-CHECK": PRINT "AND RE-ENTER": GOSUB 350: GOTO 140
  16. 160  VTAB 13: CALL  -958: PRINT "WHAT IS THE LENGTH OF THE FILE": PRINT "(IN HEX)";: INPUT H$: GOSUB 290:B = H
  17. 170  IF B <1  OR B >32000  THEN  PRINT "INVALID LENGTH. PLEASE DOUBLE-CHECK": PRINT "AND RE-ENTER": GOSUB 350: GOTO 160
  18. 180  TEXT : HOME : NORMAL : POKE 34,1: VTAB 2: PRINT "INSTALLING CHECKIT..."
  19. 190  IF A > = 6144  THEN  GOSUB 320: POKE 5799, INT(A/256): POKE 5798,A -256 * PEEK(5799): POKE 5801, INT(B/256): POKE 5800,B -256 * PEEK(5801): POKE 5802,0: GOTO 230: REM   ABOVE $1800 SOMEWHERE
  20. 200  IF A <6144  THEN  GOSUB 370: POKE 34215, INT(A/256): POKE 34214,A -256 * PEEK(34215): POKE 34217, INT(B/256): POKE 34216,B -256 * PEEK(34217): POKE 34218,0: GOTO 210: REM   BELOW $1800 SOMEWHERE
  21. 210  IF  PEEK(48896) < >76  THEN  POKE 56,0: POKE 57,133: CALL 1002: GOTO 250
  22. 220  PRINT  CHR$(4);"IN#A$8500": GOTO 250
  23. 230  IF  PEEK(48896) < >76  THEN  POKE 56,0: POKE 57,22: CALL 1002: GOTO 250
  24. 240  PRINT  CHR$(4)"IN#A$1600": GOTO 250
  25. 250  TEXT : HOME : NORMAL : POKE 34,1: VTAB 2: PRINT "CHECKIT INSTALLED"
  26. 260  IF  PEEK(768) = 1  THEN  PRINT : PRINT "ENTER THE MONITOR BY TYPING": PRINT " CALL -151"
  27. 270  NEW 
  28. 280  END 
  29. 290 H = 0:L =  LEN(H$): ON L <1  OR L >4 GOTO 300: FOR I = 1 TO L:D =  ASC( MID$ (H$,I,1)):H = H +H(L -I) *(D -48 *(D <58  AND D >47) -55 *(D >64  AND D <71)): NEXT 
  30. 300  RETURN 
  31. 310  REM   $1600 VERSION
  32. 320  FOR I = 0 TO 377: READ ML: POKE 5632 +I,ML: NEXT I:C = 5632
  33. 330  FOR I = 0 TO 18: READ ML: POKE C +ML, PEEK(C +ML) -111: NEXT 
  34. 340  RETURN 
  35. 350  VTAB 21: PRINT "PRESS RETURN TO CONTINUE ";: GET CH$: PRINT CH$: POKE  -16368,0: RETURN 
  36. 360  REM   $8500 VERSION
  37. 370  FOR I = 0 TO 377: READ ML: POKE 34048 +I,ML: NEXT I
  38. 380  RETURN 
  39. 390  DATA   216,32,27,253,201,154,240,31,201,141,208,26,134,224,32,178,133,32,251,218,32,128,254,56,165,8
  40. 400  DATA   229,9,32,218,253,32,132,254,166,224,169,141,96,32,106,134,44,170,133,16,43,169,1,133,6,169
  41. 410  DATA   8,133,7,160,0,177,6,133,251,200,177,6,133,252,240,63,200,177,6,32,79,134,200,177,6,32
  42. 420  DATA   79,134,165,251,133,6,165,252,133,7,208,221,173,167,133,133,7,173,166,133,133,6,160,0,177,6
  43. 430  DATA   32,79,134,230,6,208,2,230,7,230,251,208,2,230,252,165,251,205,168,133,165,252,237,169,133,144
  44. 440  DATA   227,162,0,189,171,133,32,237,253,232,224,7,144,245,44,16,192,32,128,254,164,8,166,9,32,64
  45. 450  DATA   249,32,251,218,32,132,254,169,152,96,0,0,0,0,0,20,15,20,1,12,58,32,32,106,134,133
  46. 460  DATA   6,169,2,133,7,160,0,177,6,201,176,144,73,201,186,176,69,177,6,44,170,133,16,53,201,210
  47. 470  DATA   208,4,166,251,240,61,201,162,208,8,72,169,1,69,251,133,251,104,201,160,208,6,166,251,208,25
  48. 480  DATA   240,26,201,191,208,19,132,226,160,0,185,117,134,32,79,134,200,192,5,144,245,164,226,176,3,32
  49. 490  DATA   79,134,200,196,224,144,188,96,166,224,104,104,169,141,96,132,226,136,177,6,201,160,240,249,201,186
  50. 500  DATA   240,8,201,176,144,36,201,186,176,32,164,226,200,177,6,201,197,208,23,200,177,6,201,205,208,16
  51. 510  DATA   169,210,32,79,134,169,197,32,79,134,169,205,32,79,134,96,164,226,177,6,24,144,135,162,8,10
  52. 520  DATA   38,8,38,9,144,14,72,165,8,73,33,133,8,165,9,73,16,133,9,104,202,208,232,96,169,0
  53. 530  DATA   133,8,133,9,133,251,133,252,96,208,210,201,206,212
  54. 540  DATA   16,41,44,73,79,92,97,106,123,128,135,180,203,246,249,261,316,321,326